/**
 * 
 */
package cupiPhoneMundo;

import java.util.ArrayList;

import uniandes.cupi2.collections.trie.ElementoNoExisteException;
import uniandes.cupi2.collections.trie.PalabraInvalidaException;

/**
 * @author Andres Felipe
 * 
 */
public class CupiPhone implements ICupiPhone
{
    // ------------------------------------------------
    // Atributos
    // ------------------------------------------------

    /**
     * Atributo que se encarga del diccionario de palabras
     */
    private Diccionario diccPalabras;

    /**
     * Atributo que modela la lista de contactos.
     */
    private Contacto contactoRaiz;

    // -------------------------------------------------
    // Metodos
    // -------------------------------------------------
    public CupiPhone( )
    {
        contactoRaiz = null;
    }
    public void agregarContacto( String nombreC, String numeroCasaC, String numeroPersonalC, String numeroTrabajoC, String numeroCelularC, String emailC ) throws ContactoRepetidoException
    {
        Contacto c = new Contacto(  nombreC,  numeroCasaC,  numeroPersonalC,  numeroTrabajoC,  numeroCelularC,  emailC );
        if( contactoRaiz == null )
            contactoRaiz = c;
        else
            contactoRaiz.insertar( c );
        
        
    }

    public void eliminarContacto( String nombre )
    {
        contactoRaiz = contactoRaiz.eliminar( nombre );
    }

    public void agregarPalabra( String palabra )
    {
        diccPalabras.agregarPalabra( palabra );
    }

    public int darNumeroCaracteresMensaje( String mensaje )
    {
        // TODO Auto-generated method stub
        return 0;
    }

    public int darNumeroPalabrasDiccionario( )
    {
        return diccPalabras.darNumeroPalabrasDiccionario( );
    }

    public int darNumeroPalabrasMensaje( String mensaje )
    {
        // TODO Auto-generated method stub
        return 0;
    }

    public void eliminarPalabra( String palabra ) throws ElementoNoExisteException, PalabraInvalidaException
    {
        diccPalabras.eliminarPalabra( palabra );
    }
    
    public void darContactos(ArrayList contactos)
    {
        if(contactoRaiz !=null)
        {
           contactoRaiz.darContactos( contactos );
        }
    }

    public void informarLlamadaEntrante( )
    {
        // TODO Auto-generated method stub
        
    }
}
